package cn.edu.bzu.manager.computer.service;

import cn.edu.bzu.manager.computer.dao.gpu.GpuBrandDAO;
import cn.edu.bzu.manager.computer.dao.gpu.GpuInfoDAO;
import cn.edu.bzu.manager.computer.entity.GpuBrand;
import cn.edu.bzu.manager.computer.entity.GpuInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 显卡业务逻辑层
 *
 * @author 1923111021王云飞
 * @since 1.8
 */

@Service
public class GpuService {

    private GpuInfoDAO gpuInfoDAO;
    private GpuBrandDAO gpuBrandDAO;

    /**
     * 自动注入DAO
     */
    @Autowired
    public void setAll(GpuInfoDAO gpuInfoDAO, GpuBrandDAO gpuBrandDAO) {
        this.gpuInfoDAO = gpuInfoDAO;
        this.gpuBrandDAO = gpuBrandDAO;
    }

    /**
     * 获取所有显卡信息
     *
     * @return 所有显卡信息的集合
     */
    public List<GpuInfo> findAllGpuInfos() {
        return gpuInfoDAO.findAll();
    }

    /**
     * 获取所有显卡品牌信息
     *
     * @return 所有显卡品牌信息的集合
     */
    public List<GpuBrand> findAllGpuBrands() {
        return gpuBrandDAO.findAll();
    }

    /**
     * 添加/更新显卡品牌信息
     *
     * @param gpuBrand 要添加/更新的显卡信息
     */
    public void saveGpuBrand(GpuBrand gpuBrand) {
        gpuBrandDAO.saveAndFlush(gpuBrand);
    }

    /**
     * 通过ID删除显卡品牌
     *
     * @param id 要删除的显卡品牌ID
     */
    public void deleteGpuBrandById(Integer id) {
        gpuBrandDAO.deleteById(id);
    }

    /**
     * 添加/更新显卡信息
     *
     * @param gpuInfo 要添加/更新的显卡信息
     */
    public void saveGpuInfo(GpuInfo gpuInfo) {
        gpuInfoDAO.saveAndFlush(gpuInfo);
    }

    /**
     * 通过ID删除显卡信息
     *
     * @param id 要删除的显卡信息ID
     */
    public void deleteGpuInfoById(Integer id) {
        gpuInfoDAO.deleteById(id);
    }

}
